// 设置管理混入
export default {
  data() {
    return {
      // 应用设置
      appSettings: {
        location_service: true,
        auto_update: false,
        notifications: true,
        sound: true,
        vibration: true
      }
    }
  },
  methods: {
    // 获取设置值
    getSettingValue(key) {
      return this.appSettings[key] || false
    },

    // 切换设置
    toggleSetting(key, e) {
      this.appSettings[key] = e.detail.value
      this.saveSettings()
      
      // 处理特殊设置
      switch (key) {
        case 'location_service':
          this.handleLocationServiceToggle(e.detail.value)
          break
        case 'auto_update':
          this.handleAutoUpdateToggle(e.detail.value)
          break
      }
    },

    // 处理位置服务开关
    handleLocationServiceToggle(enabled) {
      if (enabled) {
        // 请求位置权限
        uni.authorize({
          scope: 'scope.userLocation',
          success: () => {
            uni.showToast({
              title: '位置服务已开启',
              icon: 'success'
            })
          },
          fail: () => {
            this.appSettings.location_service = false
            uni.showModal({
              title: '权限申请',
              content: '需要位置权限才能使用位置服务，请到设置中开启',
              confirmText: '去设置',
              success: (res) => {
                if (res.confirm) {
                  uni.openSetting()
                }
              }
            })
          }
        })
      } else {
        uni.showToast({
          title: '位置服务已关闭',
          icon: 'success'
        })
      }
    },

    // 处理自动更新开关
    handleAutoUpdateToggle(enabled) {
      uni.showToast({
        title: enabled ? '自动更新已开启' : '自动更新已关闭',
        icon: 'success'
      })
    },

    // 保存设置
    saveSettings() {
      uni.setStorageSync('appSettings', this.appSettings)
    },

    // 加载设置
    loadSettings() {
      const settings = uni.getStorageSync('appSettings')
      if (settings) {
        this.appSettings = { ...this.appSettings, ...settings }
      }
    },

    // 检查更新
    checkUpdate() {
      uni.showLoading({ title: '检查中...' })
      
      // Mock检查更新
      setTimeout(() => {
        uni.hideLoading()
        uni.showToast({
          title: '已是最新版本',
          icon: 'success'
        })
      }, 2000)
    },

    // 清理缓存
    clearCache() {
      uni.showModal({
        title: '清理缓存',
        content: '确定要清理应用缓存吗？',
        success: (res) => {
          if (res.confirm) {
            uni.showLoading({ title: '清理中...' })
            
            // 清理本地缓存
            setTimeout(() => {
              uni.clearStorageSync()
              uni.hideLoading()
              uni.showToast({
                title: '缓存清理完成',
                icon: 'success'
              })
            }, 1500)
          }
        }
      })
    }
  }
}